<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Set_kenaikan_kelas extends CI_Controller
{

    public function index()
    {
        $data['select_tahun'] = $this->db->from('tahun')->order_by('id_tahun', 'ASC')->get();
        $data['id_tahun'] = $this->db->select('id_tahun')->from('tahun')->where('tahun_aktif', '1')->get()->row()->id_tahun;
        $this->template->admin('admin/v_set_kenaikan_kelas', $data, 4, "Set Kenaikan Kelas");
    }

    public function data($tahun = '', $kelas = '')
    {
        $id_tahun = $this->encrypt->decode($this->input->post('id_tahun'));
        $id_kelas = $this->encrypt->decode($this->input->post('id_kelas'));
        if ($id_tahun == '' AND $tahun != '')
            $id_tahun = $tahun;
        if ($id_kelas == '' AND $kelas != '')
            $id_kelas = $kelas;
        if ($id_tahun == '')
            show_404();
        else
        {
            $data_tahun = $this->db->select('tahun_angkatan')->from('tahun')->where('id_tahun', $id_tahun)->get();
            if ($data_tahun->num_rows() > 0)
            {
                $data_tahun = $data_tahun->row();
                $data['id_tahun'] = $id_tahun;
                $data['id_kelas'] = $id_kelas;
                $data['tahun_pelajaran'] = $data_tahun->tahun_angkatan;

                $data['rslt_data_siswa'] = $this->db->query('SELECT s.id, s.nomor_induk, s.nama_siswa, s.jenis_kelamin, s.nilai_un, s.lulus, 
				(k.nama_kelas) AS nama_kelas, 
				(tingkat_kelas) AS tingkat_kelas, (t.tahun_angkatan), sk2.id_siswa, 
                                ROUND(SUM(ROUND(((dn.uas*(30/100)) + (dn.uts*(30/100)) + (dn.tugas*(20/100)) + (dn.kuis*(20/100))))) / COUNT(dn.id_siswa),2) AS nilai_rt
                                FROM siswa_kelas sk
				INNER JOIN data_siswa s ON(s.id=sk.id_siswa)
				INNER JOIN data_kelas k ON(k.id_kelas=sk.id_kelas)
				INNER JOIN kelas_stat ks ON(ks.id_kelstat=k.id_kelstat)
				INNER JOIN tahun t ON(t.id_tahun=sk.id_tahun)
                                LEFT JOIN data_nilai dn ON(dn.id_tahun=t.id_tahun AND dn.id_siswa=s.id)
				LEFT JOIN siswa_kelas sk2 ON(sk2.id_siswa=sk.id_siswa AND sk2.id_tahun > '.$id_tahun.')
WHERE sk.id_kelas = ' . $id_kelas . '
AND sk.id_tahun = ' . $id_tahun . '
 GROUP BY s.id
 ORDER BY s.nomor_induk ASC, s.id DESC, sk.id_tahun DESC, t.tahun_aktif DESC, t.tahun_angkatan DESC');
                if ($tahun != '')
                {
                    $data['select_tahun'] = $this->db->from('tahun')->order_by('id_tahun', 'ASC')->get();
                    $this->template->admin('admin/v_set_kenaikan_kelas', $data, 4, "Set Kenaikan Kelas");
                }
                else
                {
                    $this->load->view('admin/v_set_kenaikan_kelas_data', $data);
                }
            }
            else
            {
                show_404();
            }
        }
    }

    public function set()
    {
        $id_siswa = $this->input->post('id_siswa');
        $id_kelas = $this->encrypt->decode($this->input->post('id_kelas'));
        $id_tahun = $this->encrypt->decode($this->input->post('id_tahun'));
        $type = $this->input->post('type');
        $id_tahun_s = $this->db->query('SELECT id_tahun FROM tahun ORDER BY id_tahun > ' . $id_tahun . ' DESC LIMIT 1')->row()->id_tahun;
        $r_kelas = $this->db->query('SELECT id_kelstat, nama_kelas FROM data_kelas WHERE id_kelas = ' . $id_kelas . ' AND id_tahun = ' . $id_tahun);
        $id_kelstat = $r_kelas->row()->id_kelstat;
        $nama_kelas = $r_kelas->row()->nama_kelas;
        if(is_array($id_siswa) == TRUE)
        {
            if ($type == 'naik')
            {
                if ($id_kelstat > 4)
                {
                    $i = 0;
                    $id_hapus = "";
                    foreach ($id_siswa as $row)
                    {
                        $data_siswa[$i] = array(
                            'id' => $row,
                            'lulus' => 1
                        );
                        $id_hapus .= $row . ',';
                        $i++;
                    }
                    if (strlen($id_hapus) > 1)
                        $id_hapus = substr($id_hapus, 0, -1);
                    
                    $this->db->update_batch('data_siswa', $data_siswa, 'id');
                    $this->db->delete('user_login', 'kode_siswa IN (' . $id_hapus . ')');
                }
                else
                {
                    $nama_kelas = (substr($nama_kelas, 0, 1) + 1) . substr($nama_kelas, 1, 4) . substr($nama_kelas, 5);
                    $cari_kelas = $this->db->from('data_kelas k')->where('k.nama_kelas', $nama_kelas)->where('k.id_tahun', $id_tahun_s)->limit(1)->get();
                    $id_kelas = '';
                    $buat_kelas = FALSE;
                    $dapat_kelas = FALSE;
                    if ($cari_kelas->num_rows() == 0)
                    {
                        $buat_kelas = TRUE;
                    }
                    else
                    {
                        $id_kelas = $cari_kelas->row()->id_kelas;
                        $dapat_kelas = TRUE;
                    }

                    if ($buat_kelas == TRUE || $dapat_kelas == FALSE)
                    {
                        if ($buat_kelas == TRUE)
                        {
                            $simpankelas = array(
                                'id_tahun' => $id_tahun_s,
                                'id_kelstat' => $id_kelstat + 2,
                                'nama_kelas' => $nama_kelas
                            );
                        }
                        $this->db->insert('data_kelas', $simpankelas);
                        $id_kelas = $this->db->select('id_kelas')->get_where('data_kelas', $simpankelas, 1)->row()->id_kelas;
                        $dapat_kelas = TRUE;
                    }
                    if ($dapat_kelas == TRUE)
                    {
                        $i = 0;
                        foreach ($id_siswa as $row)
                        {
                            $data_siswa[$i] = array(
                                'id_tahun' => $id_tahun_s,
                                'id_kelas' => $id_kelas,
                                'id_siswa' => $row
                            );
                            $i++;
                        }
                        $this->db->insert_batch('siswa_kelas', $data_siswa);
                    }
                }

    //                    $i = 0;
    //                    foreach ($id_siswa as $row)
    //                    {
    //                         $data_tambah[$i] = array(
    //                             'MTK_IDMTK' => $row,
    //                             'MKS_IDMKS' => $id_mks,
    //                             'FRS_TGLPM' => $tgl,
    //                             'FRS_STATU' => $status,
    //                         );
    //                         $i++;
    //                    }
    //			else
    //			{
    //				$this->db->insert('siswa_kelas', );
    //			}
            }
            elseif ($type == 'tetap')
            {
                $cari_kelas = $this->db->from('data_kelas k')->where('k.nama_kelas', $nama_kelas)->where('k.id_tahun', $id_tahun_s)->limit(1)->get();
                $id_kelas = '';
                $buat_kelas = FALSE;
                $dapat_kelas = FALSE;
                if ($cari_kelas->num_rows() == 0)
                {
                    $buat_kelas = TRUE;
                }
                else
                {
                    $id_kelas = $cari_kelas->row()->id_kelas;
                    $dapat_kelas = TRUE;
                }

                if ($buat_kelas == TRUE || $dapat_kelas == FALSE)
                {
                    if ($buat_kelas == TRUE)
                    {
                        $simpankelas = array(
                            'id_tahun' => $id_tahun_s,
                            'id_kelstat' => $id_kelstat,
                            'nama_kelas' => $nama_kelas
                        );
                    }
                    $this->db->insert('data_kelas', $simpankelas);
                    $id_kelas = $this->db->select('id_kelas')->get_where('data_kelas', $simpankelas, 1)->row()->id_kelas;
                    $dapat_kelas = TRUE;
                }
                $i = 0;
                foreach ($id_siswa as $row)
                {
                    $data_siswa[$i] = array(
                        'id_tahun' => $id_tahun_s,
                        'id_kelas' => $id_kelas,
                        'id_siswa' => $row
                    );
                    $i++;
                }
                $this->db->insert_batch('siswa_kelas', $data_siswa);
            }
        }
        redirect('admin/set_kenaikan_kelas/data/' . $id_tahun . '/' . $id_kelas);
    }

}

/* End of file set_kenaikan_kelas.php */
/* Location: ./application/controllers/admin/set_kenaikan_kelas.php */